OSGi framework is a service platform that operates over Java (registered trademark) Virtual Machine and that handles Java programs as Plugin modules so that the Java programs can be dynamically added to applications. OSGi framework is developed and defined by OSGi Alliance (Non-Patent Literature 1). Java programs on an OSGi framework that are handled as Plugin modules are referred to as OSGi bundles.
Some of terminals such as gateway devices (e.g. broadband routers) installed in homes by service providers such as telecommunication carriers equip OSGi frameworks. OSGi framework plays a role for distributing applications to the gateway device and a role as an infrastructure to execute applications. The terminals equip OSGi frameworks and distribution servers distribute OSGi bundles, thereby adding or updating functions from remote sites by module units.
In some cases, gateway devices in homes may have to acquire new OSGi bundles from distribution servers. As an example, a case where a user bought a USB dongle having a ZigBee (registered trademark) communication function will be considered.
By inserting the ZigBee dongle into a USB port of the gateway device, the gateway device acquires a ZigBee communication function in terms of hardware capability. However, if the gateway device does not include communication software for performing ZigBee communications, the user cannot use the ZigBee function.
In such a case, the user searches, from Web pages of service providers or the like, OSGi bundles that are necessary for performing ZigBee communications, and downloads the OSGi bundles to install them on the gateway device in the user's home. As a result, the distribution server sends OSGi bundles for ZigBee communications to the gateway device in the home, and the gateway device is enabled to manipulate ZigBee devices using the functions of the OSGi bundles.
The user may use a Web browser as a user interface for searching the OSGi bundles. The Web browser accesses to, for example, Web pages provided by service providers. The user uses the Web browser to search required OSGi bundles, downloads the OSGi bundles, and installs the OSGi bundles on the gateway device.
Instead that a user manually searches OSGi bundles to be installed on gateway devices as described above, it is conceivable that a communication session between a distribution server and a gateway device is continuously or periodically established and the distribution server pushes OSGi bundles required by the gateway device.